Skip to content

docs(release): prep stable 0.3.0 (changelog + counts)#433

Merged
bntvllnt merged 4 commits into
mainfrom
release/0.3.0
Jun 27, 2026
Merged

docs(release): prep stable 0.3.0 (changelog + counts)#433
bntvllnt merged 4 commits into
mainfrom
release/0.3.0

Conversation

@bntvllnt

@bntvllnt bntvllnt commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Closes #432

Makes main ready to cut stable 0.3.0 (per docs/RELEASING.md). Docs + one test-guard tweak — this PR does not release. Merge → dispatch Publish is the separate next step.

Refreshed 2026-06-26: rebuilt on top of current main (was 9 days stale / conflicting). Reconciled with everything that landed since it was authored — React 19 migration (#441), the core/forms/charts/motion families, and the count-derivation fix (#450).

Changes

  • Changelogs (CHANGELOG.md + packages/ui/CHANGELOG.md): [Unreleased] → dated [0.3.0] - 2026-06-26 (the publish workflow's release gate greps ## [0.3.0]), dropped the now-satisfied pre-release notes, added the granular 0.3.0-train families (form primitives, charts/dataviz, AI/core primitives, motion/effects), a Fixed entry (theme-adaptive CandlestickChart/SparklineGrid colors), the v0.3.0 link reference, and a fresh empty [Unreleased].
  • Component count → 309 everywhere. The single source of truth is registry.items.length (= 309 after fix(registry): derive component count from registry, drop hardcoded 225 #450). Synced every prose surface that drifted: README.md (×3), packages/ui/README.md, packages/ui/package.json "description", docs/ARCHITECTURE.md, and the ROADMAP. (The earlier 144→225 / 295 numbers are superseded.)
  • ROADMAP: status planningrelease prep; milestone TBD → real 0.3.0 milestone; headline counts recomputed to +169 net (140 → 309); the curated component list is relabeled as a highlight subset (it enumerates the first ~85, not all 169).
  • RELEASING.md: documents the apps/registry version bump, the full doc-sync step (now incl. packages/ui/package.json description + the count-guard test), and the post-publish PUBLISHED_VERSION flip.
  • apps/registry/lib/component-count.test.ts (added on main by fix(registry): derive component count from registry, drop hardcoded 225 #450): the guard asserted the count lives in [Unreleased]. Cutting the release moves it into [0.3.0] and empties [Unreleased], which would break that guard. Retargeted it to assert the newest count snapshot in the changelog (first match, file is newest-first) — works both between releases and immediately after a cut. Still pins to registry.items.length.

Deliberately NOT here

  • No PUBLISHED_VERSION flip. It stays ^0.2.1 until 0.3.0 is live on npm latest; flipping before publish would make the deployed registry advertise an unpublished version and break npx shadcn add. Documented post-publish follow-up.
  • No version bump — packages/ui and apps/registry are already 0.3.0.

Verification

Count guard simulated against the real files (no local node_modules in the branch worktree; CI runs the real suite):

  • newest CHANGELOG.md count snapshot = 309 == registry.items.length
  • home/{en,fr}.mdx count claims all = 309
  • PWA manifest derives from the registry (unchanged on main)

Release sequence after this merges

  1. Merge this PR (canary republishes 0.3.0-canary.<sha>).
  2. Actions → Publish → Run workflow on main → tags v0.3.0, publishes --tag latest, GitHub Release.
  3. Post-publish PR: flip PUBLISHED_VERSION0.3.0 + regenerate registry (drift/integrity guards verify it).

Make main release-ready for the stable 0.3.0 cut (per docs/RELEASING.md).
Does NOT release — merge + dispatch Publish is a separate step.

- CHANGELOG.md + packages/ui/CHANGELOG.md: move [Unreleased] → dated
  [0.3.0] - 2026-06-16 (the publish workflow greps `## [0.3.0]`), drop the
  now-satisfied pre-release notes, add a Fixed entry for the theme-adaptive
  CandlestickChart/SparklineGrid colors, add the v0.3.0 link reference, and
  open a fresh empty [Unreleased].
- Fix stale component counts 144 → 225 in README.md, packages/ui/README.md,
  docs/ARCHITECTURE.md.
- ROADMAP: status planning → release prep; link the real 0.3.0 milestone.
- RELEASING.md: document the apps/registry version bump, the doc-sync step,
  and the post-publish PUBLISHED_VERSION flip (registry install target must
  advance only after the version is live on npm latest).

Deliberately NOT flipping PUBLISHED_VERSION here — that stays ^0.2.1 until
0.3.0 is published, else the deployed registry would advertise an
unpublished version and break `npx shadcn add`.
@vllnt-pilot

vllnt-pilot Bot commented Jun 16, 2026

Copy link
Copy Markdown

ntk preview

App Status Preview
ui-registry Ready https://pr-433-ui-registry.preview.vllnt.ai
storybook Ready https://pr-433-storybook.preview.vllnt.ai

Built from 80c04924 · public + no-index (ADR-082) · torn down on close

@bntvllnt bntvllnt self-assigned this Jun 17, 2026
…ts, sidebar fix, react-doctor sweep

- CHANGELOG (root + packages/ui): add BREAKING React 19 requirement (drop React 18,
  forwardRef -> ref-as-prop, useContext -> use), the 70 new components
  (forms 18, motion 37, core 7, charts 5, AI 3), the docs-sidebar category fix,
  shared-internals extraction, and the react-doctor warning sweep; re-date to 2026-06-17.
- Component count 225 -> 295 across README (root + package), ARCHITECTURE, ROADMAP metric.
@bntvllnt

Copy link
Copy Markdown
Collaborator Author

Updated this release-prep PR to cover the full 0.3.0 train that landed after it was opened (commit 1d723ad):

Changelog (root + packages/ui), under [0.3.0], re-dated 2026-06-17:

Two notes for the merge/release step (you're driving merges):

  1. These changelog entries describe the train PRs (feat(components): AI components — reasoning, chain-of-thought, prompt-input (#411) #434/refactor(ui): clear react-doctor misc warnings (#277) #435/feat(ui): add core primitive components (#412) #436/feat(ui): add 18 form primitive components (#409) #437/feat(charts): add pie, radar, gauge, sankey & contribution-graph (#410) #438/feat(ui): add 37 motion & effect components (#413) #439/refactor(architecture): sidebar-category fix, Zod registry seam, shared UI hooks #440/refactor(ui)!: migrate to React 19 ref-as-prop, drop forwardRef (#268) #441/refactor(ui): clear react-doctor state & effects warnings (#271) #442). If you drop any of them, prune its entry here.
  2. After merging the train, run pnpm registry:build to regenerate registry.json and confirm the 295 count (each family PR computed its registry in isolation; the authoritative number comes from the merged build). Adjust if it differs.

Not merged — yours to review and cut.

bntvllnt added 2 commits June 26, 2026 17:46
…309)

Resolves the CHANGELOG conflict and brings the release-prep branch up to
date with everything that landed on main since it was authored (React 19
migration, core/forms/charts/motion families, count-derivation #450).

- Component count corrected everywhere to the registry-derived 309 (was
  225/295 across CHANGELOGs, READMEs, package.json, ARCHITECTURE, ROADMAP).
- ROADMAP headline counts recomputed (+169 net from the 140 baseline);
  curated list relabeled as a highlight subset.
- 0.3.0 changelog dates refreshed to 2026-06-26.
- component-count.test.ts: assert the *newest* CHANGELOG count snapshot
  (not strictly [Unreleased]) so the drift guard survives a release cut —
  after this PR the count lives in [0.3.0] and [Unreleased] is empty.

Claude-Session: https://claude.ai/code/session_01KB2yTDBo7Knydqvz1VvFdF
…lint

The added comment used "just" and "immediately", which the registry's
write-good-comments ESLint rule rejects. Reworded without weasel words.

Claude-Session: https://claude.ai/code/session_01KB2yTDBo7Knydqvz1VvFdF
@bntvllnt bntvllnt merged commit 29c44b3 into main Jun 27, 2026
8 checks passed
@bntvllnt bntvllnt deleted the release/0.3.0 branch June 27, 2026 14:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Release: cut stable 0.3.0 (docs + changelog prep)

1 participant